package JVM.第03篇_运行时内存篇;

/**
 * ●一个JVM实例只存在一个堆内存，堆也是Java内存管理的核心区域。
 * ●Java 堆区在JVM启动的时候即被创建，其空间大小也就确定了。
 * 是JVM管理的最大一块内存空间。
 * ●堆内存的大小是可以调节的。
 * 《Java虚拟机规范》规定，堆可以处于物理上不连续的内存空间中，
 * 但在逻辑上它应该被视为连续的。
 * ●堆，是GC( Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。
 * 在方法结束后，堆中的对象不会马上被移除，仅仅在垃圾收集的时候才会被移除。
 *
 * ●《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分
 * 配在堆上。数组和对象可能永远不会存储在栈上，因为栈帧中保存引用，
 * 这个引用指向对象或者数组在堆中的位置。
 * ●我要说的是: “几乎”所有的对象实例都在这里分配内存。一从实际使用角度看的。
 *
 *  比如 系统会优化(栈上分配)，如果一个对象，只在此方法中使用，JVM就有可能将其部分数据优化到栈中
 *
 * 所有的线程共享Java堆，在这里还可以划分线程私有的缓冲区 (TLAB)
 * @see I_TLAB
 */
public class E0_堆 {

}
